package com.agricultural.command;

import java.util.Stack;

// 命令调用者
public class CommandInvoker {
    private Stack<Command> executedCommands; // 已执行的命令栈
    
    // 构造函数
    public CommandInvoker() {
        this.executedCommands = new Stack<>();
    }
    
    // 执行命令
    public void executeCommand(Command command) {
        command.execute();
        executedCommands.push(command);
    }
    
    // 撤销最后一个命令
    public void undoLastCommand() {
        if (!executedCommands.isEmpty()) {
            Command command = executedCommands.pop();
            command.undo();
        } else {
            System.out.println("没有可撤销的命令");
        }
    }
}    